package com.atguigu.tingshu.user.api;

import com.atguigu.tingshu.common.login.GuiguLogin;
import com.atguigu.tingshu.common.result.Result;
import com.atguigu.tingshu.user.service.UserListenProcessService;
import com.atguigu.tingshu.vo.user.UserListenProcessVo;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Tag(name = "用户声音播放进度管理接口")
@RestController
@RequestMapping("/api/user/userListenProcess")
@SuppressWarnings({"unchecked", "rawtypes"})
public class UserListenProcessApiController {

	@Autowired
	private UserListenProcessService userListenProcessService;


	/**
	 * MongoDB 查询用户上次声音播放进度
	 * @param trackId
	 * @return
	 */
	@GuiguLogin
	@GetMapping("/getTrackBreakSecond/{trackId}")
	public Result getTrackBreakSecond(@PathVariable("trackId")Long trackId){
		return Result.ok(userListenProcessService.getTrackBreakSecond(trackId));
	}


	/**
	 * MongoDB
	 * 更新用户上次声音播放进度
	 * @param userListenProcessVo
	 * @return
	 */
	@GuiguLogin
	@PostMapping("/updateListenProcess")
	public Result updateListenProcess(@RequestBody UserListenProcessVo userListenProcessVo){
		userListenProcessService.updateListenProcess(userListenProcessVo);
		return Result.ok();
	}









	/**
	 * MongoDB测试接口
	 * @return
	 */
//	@GetMapping("test")
	public Result testMongo(){
		userListenProcessService.testMongo();
		return Result.ok();
	}

	/**
	 * MySQL
	 * 查询用户上次声音播放进度
	 * @param trackId
	 * @return
	 */
//	@GuiguLogin
//	@GetMapping("/getTrackBreakSecondMysql/{trackId}")
	public Result getTrackBreakSecondMysql(@PathVariable("trackId")Long trackId){
		return Result.ok(userListenProcessService.getTrackBreakSecondMysql(trackId));
	}

	/**
	 * MySQL
	 * 更新用户上次声音播放进度
	 * @param userListenProcessVo
	 * @return
	 */
//	@GuiguLogin
//	@PostMapping("/updateListenProcessMysql")
	public Result updateListenProcessMysql(@RequestBody UserListenProcessVo userListenProcessVo){
		userListenProcessService.updateListenProcessMysql(userListenProcessVo);
		return Result.ok();
	}


}

